home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Connections.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  12.1 KB  |  359 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Connections.mod
  3.  
  4.      Contains:    Communications Toolbox Connection Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE Connections;
  23.  
  24. IMPORT SYSTEM, Types, OSUtils, Events, Dialogs;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31. (*    current Connection Manager version    *)
  32.     curCMVersion*                = 2;
  33. (*    current Connection Manager Environment Record version     *)
  34.     curConnEnvRecVers*            = 0;
  35. (* CMErr *)
  36.     cmGenericError*                = -1;
  37.     cmNoErr*                        = 0;
  38.     cmRejected*                    = 1;
  39.     cmFailed*                    = 2;
  40.     cmTimeOut*                    = 3;
  41.     cmNotOpen*                    = 4;
  42.     cmNotClosed*                    = 5;
  43.     cmNoRequestPending*            = 6;
  44.     cmNotSupported*                = 7;
  45.     cmNoTools*                    = 8;
  46.     cmUserCancel*                = 9;
  47.     cmUnknownError*                = 11;
  48.  
  49.     
  50. TYPE
  51.     CMErr* = Types.OSErr;
  52.  
  53.  
  54. CONST
  55.     cmData*                        = ASH(1,0);
  56.     cmCntl*                        = ASH(1,1);
  57.     cmAttn*                        = ASH(1,2);
  58.     cmDataNoTimeout*                = ASH(1,4);
  59.     cmCntlNoTimeout*                = ASH(1,5);
  60.     cmAttnNoTimeout*                = ASH(1,6);
  61.     cmDataClean*                    = ASH(1,8);
  62.     cmCntlClean*                    = ASH(1,9);
  63.     cmAttnClean*                    = ASH(1,10);
  64. (*        Only for CMRecFlags (not CMChannel) in the rest of this enum    *)
  65.     cmNoMenus*                    = ASH(1,16);
  66.     cmQuiet*                        = ASH(1,17);
  67.     cmConfigChanged*                = ASH(1,18);
  68.  
  69. (* CMRecFlags and CMChannel        *)
  70. (*        Low word of CMRecFlags is same as CMChannel    *)
  71.     
  72. TYPE
  73.     CMRecFlags* = LONGINT;
  74.  
  75.     CMChannel* = INTEGER;
  76.  
  77.  
  78. CONST
  79.     cmStatusOpening*                = ASH(1,0);
  80.     cmStatusOpen*                = ASH(1,1);
  81.     cmStatusClosing*                = ASH(1,2);
  82.     cmStatusDataAvail*            = ASH(1,3);
  83.     cmStatusCntlAvail*            = ASH(1,4);
  84.     cmStatusAttnAvail*            = ASH(1,5);
  85.     cmStatusDRPend*                = ASH(1,6);                    (* data read pending    *)
  86.     cmStatusDWPend*                = ASH(1,7);                    (* data write pending    *)
  87.     cmStatusCRPend*                = ASH(1,8);                    (* cntl read pending    *)
  88.     cmStatusCWPend*                = ASH(1,9);                    (* cntl write pending    *)
  89.     cmStatusARPend*                = ASH(1,10);                (* attn read pending    *)
  90.     cmStatusAWPend*                = ASH(1,11);                (* attn write pending    *)
  91.     cmStatusBreakPend*            = ASH(1,12);
  92.     cmStatusListenPend*            = ASH(1,13);
  93.     cmStatusIncomingCallPresent*    = ASH(1,14);
  94.     cmStatusReserved0*            = ASH(1,15);
  95.  
  96.     
  97. TYPE
  98.     CMStatFlags* = LONGINT;
  99.  
  100.  
  101. CONST
  102.     cmDataIn*                    = 0;
  103.     cmDataOut*                    = 1;
  104.     cmCntlIn*                    = 2;
  105.     cmCntlOut*                    = 3;
  106.     cmAttnIn*                    = 4;
  107.     cmAttnOut*                    = 5;
  108.     cmRsrvIn*                    = 6;
  109.     cmRsrvOut*                    = 7;
  110.  
  111.     
  112. TYPE
  113.     CMBufFields* = INTEGER;
  114.  
  115.     CMBuffers* = ARRAY 8 (*ΔΔ[0..7]ΔΔ*) OF Types.Ptr;
  116.  
  117.     CMBufferSizes* = ARRAY 8 (*ΔΔ[0..7]ΔΔ*) OF LONGINT;
  118.  
  119.  
  120. CONST
  121.     cmSearchSevenBit*            = ASH(1,0);
  122.  
  123.     
  124. TYPE
  125.     CMSearchFlags* = INTEGER;
  126.  
  127.  
  128. CONST
  129.     cmFlagsEOM*                    = ASH(1,0);
  130.  
  131.     
  132. TYPE
  133.     CMFlags* = INTEGER;
  134.  
  135.     ConnEnvironRec* = RECORD
  136.         version*:                INTEGER;
  137.         baudRate*:                LONGINT;
  138.         dataBits*:                INTEGER;
  139.         channels*:                CMChannel;
  140.         swFlowControl*:            BOOLEAN;
  141.         hwFlowControl*:            BOOLEAN;
  142.         flags*:                    CMFlags;
  143.     END;
  144.  
  145.     ConnEnvironRecPtr* = POINTER TO ConnEnvironRec;
  146.  
  147.     ConnPtr* = POINTER TO ConnRecord;
  148.     ConnHandle* = HANDLE TO ConnRecord (*ΔΔ POINTER TO ConnPtr*);
  149.  
  150.     ConnectionToolDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  151.     ConnectionSearchCallBackProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hConn: ConnHandle; matchPtr: Types.Ptr; refNum: LONGINT);
  152.     ConnectionCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hConn: ConnHandle);
  153.     ConnectionChooseIdleProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ;
  154.     ConnectionToolDefUPP* = Types.UniversalProcPtr;
  155.     ConnectionSearchCallBackUPP* = Types.UniversalProcPtr;
  156.     ConnectionCompletionUPP* = Types.UniversalProcPtr;
  157.     ConnectionChooseIdleUPP* = Types.UniversalProcPtr;
  158.  
  159.     ConnRecord* = RECORD
  160.         procID*:                    INTEGER;
  161.         flags*:                    CMRecFlags;
  162.         errCode*:                CMErr;
  163.         refCon*:                    LONGINT;
  164.         userData*:                LONGINT;
  165.         defProc*:                ConnectionToolDefUPP;
  166.         config*:                    Types.Ptr;
  167.         oldConfig*:                Types.Ptr;
  168.         asyncEOM*:                LONGINT;
  169.         reserved1*:                LONGINT;
  170.         reserved2*:                LONGINT;
  171.         cmPrivate*:                Types.Ptr;
  172.         bufferArray*:            CMBuffers;
  173.         bufSizes*:                CMBufferSizes;
  174.         mluField*:                LONGINT;
  175.         asyncCount*:                CMBufferSizes;
  176.     END;
  177.  
  178.  
  179. CONST
  180. (* CMIOPB constants and structure *)
  181.     cmIOPBQType*                    = 10;
  182.     cmIOPBversion*                = 0;
  183.  
  184.  
  185. TYPE
  186.     CMIOPB* = RECORD
  187.         qLink*:                    OSUtils.QElemPtr;
  188.         qType*:                    INTEGER;                                (* cmIOPBQType *)
  189.         hConn*:                    ConnHandle;
  190.         theBuffer*:                Types.Ptr;
  191.         count*:                    LONGINT;
  192.         flags*:                    CMFlags;
  193.         userCompletion*:            ConnectionCompletionUPP;
  194.         timeout*:                LONGINT;
  195.         errCode*:                CMErr;
  196.         channel*:                CMChannel;
  197.         asyncEOM*:                LONGINT;
  198.         reserved1*:                LONGINT;
  199.         reserved2*:                INTEGER;
  200.         version*:                INTEGER;                                (* cmIOPBversion *)
  201.         refCon*:                    LONGINT;                                (* for application *)
  202.         toolData1*:                LONGINT;                                (* for tool *)
  203.         toolData2*:                LONGINT;                                (* for tool *)
  204.     END;
  205.  
  206.     CMIOPBPtr* = POINTER TO CMIOPB;
  207.  
  208. CONST
  209.     uppConnectionToolDefProcInfo* = $0000FEF0; (* PROCEDURE (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; *)
  210.     uppConnectionSearchCallBackProcInfo* = $00000FC0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param); *)
  211.     uppConnectionCompletionProcInfo* = $000000C0; (* PROCEDURE (4 byte param); *)
  212.     uppConnectionChooseIdleProcInfo* = $00000000; (* PROCEDURE ; *)
  213.  
  214. PROCEDURE CallConnectionToolDefProc*(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  215.     (*$IF NOT GENERATINGCFM*)
  216.     INLINE PASCAL $205F, $4E90;
  217.     (*$END*)
  218.  
  219. PROCEDURE CallConnectionSearchCallBackProc*(hConn: ConnHandle; matchPtr: Types.Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  220.     (*$IF NOT GENERATINGCFM*)
  221.     INLINE PASCAL $205F, $4E90;
  222.     (*$END*)
  223.  
  224. PROCEDURE CallConnectionCompletionProc*(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  225.     (*$IF NOT GENERATINGCFM*)
  226.     INLINE PASCAL $205F, $4E90;
  227.     (*$END*)
  228.  
  229. PROCEDURE CallConnectionChooseIdleProc*(userRoutine: ConnectionChooseIdleUPP);
  230.     (*$IF NOT GENERATINGCFM*)
  231.     INLINE PASCAL $205F, $4E90;
  232.     (*$END*)
  233.  
  234. PROCEDURE NewConnectionToolDefProc*(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  235.     (*$IF NOT GENERATINGCFM *)
  236.     INLINE PASCAL $2E9F;
  237.     (*$END*)
  238.  
  239. PROCEDURE NewConnectionSearchCallBackProc*(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  240.     (*$IF NOT GENERATINGCFM *)
  241.     INLINE PASCAL $2E9F;
  242.     (*$END*)
  243.  
  244. PROCEDURE NewConnectionCompletionProc*(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  245.     (*$IF NOT GENERATINGCFM *)
  246.     INLINE PASCAL $2E9F;
  247.     (*$END*)
  248.  
  249. PROCEDURE NewConnectionChooseIdleProc*(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  250.     (*$IF NOT GENERATINGCFM *)
  251.     INLINE PASCAL $2E9F;
  252.     (*$END*)
  253.  
  254. PROCEDURE InitCM*(): CMErr;
  255.     EXTERNAL PASCAL;
  256. PROCEDURE CMGetVersion*(hConn: ConnHandle): Types.Handle;
  257.     EXTERNAL PASCAL;
  258. PROCEDURE CMGetCMVersion*(): INTEGER;
  259.     EXTERNAL PASCAL;
  260. PROCEDURE CMNew*(procID: INTEGER; flags: CMRecFlags; VAR desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  261.     EXTERNAL PASCAL;
  262. PROCEDURE CMDispose*(hConn: ConnHandle);
  263.     EXTERNAL PASCAL;
  264. PROCEDURE CMListen*(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  265.     EXTERNAL PASCAL;
  266. PROCEDURE CMAccept*(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  267.     EXTERNAL PASCAL;
  268. PROCEDURE CMOpen*(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  269.     EXTERNAL PASCAL;
  270. PROCEDURE CMClose*(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  271.     EXTERNAL PASCAL;
  272. PROCEDURE CMAbort*(hConn: ConnHandle): CMErr;
  273.     EXTERNAL PASCAL;
  274. PROCEDURE CMStatus*(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  275.     EXTERNAL PASCAL;
  276. PROCEDURE CMIdle*(hConn: ConnHandle);
  277.     EXTERNAL PASCAL;
  278. PROCEDURE CMReset*(hConn: ConnHandle);
  279.     EXTERNAL PASCAL;
  280. PROCEDURE CMBreak*(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  281.     EXTERNAL PASCAL;
  282. PROCEDURE CMRead*(hConn: ConnHandle; theBuffer: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  283.     EXTERNAL PASCAL;
  284. PROCEDURE CMWrite*(hConn: ConnHandle; theBuffer: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  285.     EXTERNAL PASCAL;
  286. PROCEDURE CMIOKill*(hConn: ConnHandle; which: INTEGER): CMErr;
  287.     EXTERNAL PASCAL;
  288. PROCEDURE CMActivate*(hConn: ConnHandle; activate: BOOLEAN);
  289.     EXTERNAL PASCAL;
  290. PROCEDURE CMResume*(hConn: ConnHandle; resume: BOOLEAN);
  291.     EXTERNAL PASCAL;
  292. PROCEDURE CMMenu*(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  293.     EXTERNAL PASCAL;
  294. PROCEDURE CMValidate*(hConn: ConnHandle): BOOLEAN;
  295.     EXTERNAL PASCAL;
  296. PROCEDURE CMDefault*(VAR theConfig: Types.Ptr; procID: INTEGER; allocate: BOOLEAN);
  297.     EXTERNAL PASCAL;
  298. PROCEDURE CMSetupPreflight*(procID: INTEGER; VAR magicCookie: LONGINT): Types.Handle;
  299.     EXTERNAL PASCAL;
  300. PROCEDURE CMSetupFilter*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; VAR theEvent: Events.EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  301.     EXTERNAL PASCAL;
  302. PROCEDURE CMSetupSetup*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; VAR magicCookie: LONGINT);
  303.     EXTERNAL PASCAL;
  304. PROCEDURE CMSetupItem*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  305.     EXTERNAL PASCAL;
  306. PROCEDURE CMSetupXCleanup*(procID: INTEGER; theConfig: (*ΔΔUNIVΔΔ*) Types.Ptr; count: INTEGER; theDialog: Dialogs.DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  307.     EXTERNAL PASCAL;
  308. PROCEDURE CMSetupPostflight*(procID: INTEGER);
  309.     EXTERNAL PASCAL;
  310. PROCEDURE CMGetConfig*(hConn: ConnHandle): Types.Ptr;
  311.     EXTERNAL PASCAL;
  312. PROCEDURE CMSetConfig*(hConn: ConnHandle; thePtr: (*ΔΔUNIVΔΔ*) Types.Ptr): INTEGER;
  313.     EXTERNAL PASCAL;
  314. PROCEDURE CMIntlToEnglish*(hConn: ConnHandle; inputPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR outputPtr: Types.Ptr; language: INTEGER): Types.OSErr;
  315.     EXTERNAL PASCAL;
  316. PROCEDURE CMEnglishToIntl*(hConn: ConnHandle; inputPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR outputPtr: Types.Ptr; language: INTEGER): Types.OSErr;
  317.     EXTERNAL PASCAL;
  318. PROCEDURE CMAddSearch*(hConn: ConnHandle; theString: Types.ConstStr255Param; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  319.     EXTERNAL PASCAL;
  320. PROCEDURE CMRemoveSearch*(hConn: ConnHandle; refnum: LONGINT);
  321.     EXTERNAL PASCAL;
  322. PROCEDURE CMClearSearch*(hConn: ConnHandle);
  323.     EXTERNAL PASCAL;
  324. PROCEDURE CMGetConnEnvirons*(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  325.     EXTERNAL PASCAL;
  326. PROCEDURE CMChoose*(VAR hConn: ConnHandle; where: Types.Point; idle: ConnectionChooseIdleUPP): INTEGER;
  327.     EXTERNAL PASCAL;
  328. PROCEDURE CMEvent*(hConn: ConnHandle; (*CONST*)VAR theEvent: Events.EventRecord);
  329.     EXTERNAL PASCAL;
  330. PROCEDURE CMGetToolName*(procID: INTEGER; VAR name: Types.Str255);
  331.     EXTERNAL PASCAL;
  332. PROCEDURE CMGetProcID*(name: Types.ConstStr255Param): INTEGER;
  333.     EXTERNAL PASCAL;
  334. PROCEDURE CMSetRefCon*(hConn: ConnHandle; refCon: LONGINT);
  335.     EXTERNAL PASCAL;
  336. PROCEDURE CMGetRefCon*(hConn: ConnHandle): LONGINT;
  337.     EXTERNAL PASCAL;
  338. PROCEDURE CMGetUserData*(hConn: ConnHandle): LONGINT;
  339.     EXTERNAL PASCAL;
  340. PROCEDURE CMSetUserData*(hConn: ConnHandle; userData: LONGINT);
  341.     EXTERNAL PASCAL;
  342. PROCEDURE CMGetErrorString*(hConn: ConnHandle; id: INTEGER; VAR errMsg: Types.Str255);
  343.     EXTERNAL PASCAL;
  344. PROCEDURE CMNewIOPB*(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  345.     EXTERNAL PASCAL;
  346. PROCEDURE CMDisposeIOPB*(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  347.     EXTERNAL PASCAL;
  348. PROCEDURE CMPBRead*(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  349.     EXTERNAL PASCAL;
  350. PROCEDURE CMPBWrite*(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  351.     EXTERNAL PASCAL;
  352. PROCEDURE CMPBIOKill*(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  353.     EXTERNAL PASCAL;
  354.  
  355. (* $ALIGN RESET*)
  356. (* $POP*)
  357.  
  358.  END Connections.
  359.